package Entidades.EntidadesLogica;
import Entidades.EntidadesDTO.*;
import Gestores.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Vector;

public class Encuentro {
	
	private int num_encuentro;
	private List<Resultado> HistorialResultado;
	private LugarDeRealizacion lugarEncuentro;
	private Participante participanteLocal;
	private Participante participanteVisitante;
	private Resultado resultadoActual;
	private ResultadoPorPuntos resultadoPuntos;
	private ResultadoPorPuntuacionFinal resultadoPuntuacionFinal;
	private ResultadoPorSet resultadoSet;
	private Participante participanteInasistenteLocal;
	private Participante participanteInasistenteVisitante;
	
	public Encuentro(int num_encuentro, List<Resultado> historialResultado,
			LugarDeRealizacion lugarEncuentro, Participante participanteLocal,
			Participante participanteVisitante, Resultado resultadoActual,
			ResultadoPorPuntos resultadoPuntos,
			ResultadoPorPuntuacionFinal resultadoPuntuacionFinal,
			ResultadoPorSet resultadoSet,
			Participante participanteInasistenteLocal,
			Participante participanteInasistenteVisitante) {
		super();
		this.num_encuentro = num_encuentro;
		HistorialResultado = historialResultado;
		this.lugarEncuentro = lugarEncuentro;
		this.participanteLocal = participanteLocal;
		this.participanteVisitante = participanteVisitante;
		this.resultadoActual = resultadoActual;
		this.resultadoPuntos = resultadoPuntos;
		this.resultadoPuntuacionFinal = resultadoPuntuacionFinal;
		this.resultadoSet = resultadoSet;
		this.participanteInasistenteLocal = participanteInasistenteLocal;
		this.participanteInasistenteVisitante = participanteInasistenteVisitante;
	}
	public Encuentro(EncuentroDTO encuentroDTO){
		this.num_encuentro=encuentroDTO.getNum_encuentro();
		if(encuentroDTO.getResultadoPuntosDTO()!=null)
			this.resultadoPuntos=new ResultadoPorPuntos(encuentroDTO.getResultadoPuntosDTO().getResultadoParticipante1(), encuentroDTO.getResultadoPuntosDTO().getResultadoParticipante2(), encuentroDTO.getResultadoPuntosDTO().getId_Resultado(), new Date());
		else if(encuentroDTO.getResultadoPuntuacionFinalDTO()!=null)
			this.resultadoPuntuacionFinal=new ResultadoPorPuntuacionFinal(encuentroDTO.getResultadoPuntuacionFinalDTO().isResultadoParticipante1(),encuentroDTO.getResultadoPuntuacionFinalDTO().isResultadoParticipante2(),  encuentroDTO.getResultadoPuntuacionFinalDTO().getId_Resultado(), new Date());
		else if(encuentroDTO.getResultadoSetDTO()!=null){
			Vector<Set> lista_set=new Vector<Set>();
			for(int i=0;i<encuentroDTO.getResultadoSetDTO().getListaSets().size();i++){
				lista_set.add(new Set(encuentroDTO.getResultadoSetDTO().getListaSets().get(i).getNumero_set(), encuentroDTO.getResultadoSetDTO().getListaSets().get(i).getResultadoParticipante1(), encuentroDTO.getResultadoSetDTO().getListaSets().get(i).getResultadoParticipante2()));
			}
			this.resultadoSet=new ResultadoPorSet( encuentroDTO.getResultadoSetDTO().getId_Resultado(), new Date(), lista_set);
			
		}
		this.participanteLocal=new Participante(encuentroDTO.getParticipanteLocal().getIdParticipante(), null, null, null);
		this.participanteVisitante=new Participante(encuentroDTO.getParticipanteVisitante().getIdParticipante(), null, null, null);
	}
	public int getNum_encuentro() {
		return num_encuentro;
	}

	public List<Resultado> getHistorialResultado() {
		return HistorialResultado;
	}

	public LugarDeRealizacion getLugarEncuentro() {
		return lugarEncuentro;
	}

	public ResultadoPorPuntos getResultadoPuntos() {
		return resultadoPuntos;
	}
	public ResultadoPorPuntuacionFinal getResultadoPuntuacionFinal() {
		return resultadoPuntuacionFinal;
	}
	public ResultadoPorSet getResultadoSet() {
		return resultadoSet;
	}
	public void setResultadoPuntos(ResultadoPorPuntos resultadoPuntos) {
		this.resultadoPuntos = resultadoPuntos;
	}
	public void setResultadoPuntuacionFinal(
			ResultadoPorPuntuacionFinal resultadoPuntuacionFinal) {
		this.resultadoPuntuacionFinal = resultadoPuntuacionFinal;
	}
	public void setResultadoSet(ResultadoPorSet resultadoSet) {
		this.resultadoSet = resultadoSet;
	}
	
	public Participante getParticipanteLocal() {
		return participanteLocal;
	}

	public Participante getParticipanteVisitante() {
		return participanteVisitante;
	}

	public Resultado getResultadoActual() {
		return resultadoActual;
	}
	public boolean isResultadoNull(){
		if(resultadoPuntos==null&&resultadoPuntuacionFinal==null&&resultadoSet==null)
			return true;
		return false;
	}
	public Participante getParticipanteInasistenteLocal() {
		return participanteInasistenteLocal;
	}
	public Participante getParticipanteInasistenteVisitante() {
		return participanteInasistenteVisitante;
	}

	public void setNum_encuentro(int num_encuentro) {
		this.num_encuentro = num_encuentro;
	}

	public void setHistorialResultado(List<Resultado> historialResultado) {
		HistorialResultado = historialResultado;
	}

	public void setLugarEncuentro(LugarDeRealizacion lugarEncuentro) {
		this.lugarEncuentro = lugarEncuentro;
	}

	public void setParticipanteLocal(Participante participanteLocal) {
		this.participanteLocal = participanteLocal;
	}

	public void setParticipanteVisitante(Participante participanteVisitante) {
		this.participanteVisitante = participanteVisitante;
	}

	public void setResultadoActual(Resultado resultadoActual) {
		this.resultadoActual = resultadoActual;
	}

	public void setParticipanteInasistenteVisitante(Participante participanteInasistenteVisitante) {
		this.participanteInasistenteVisitante = participanteInasistenteVisitante;
	}
	public void setParticipanteInasistenteLocal(Participante participanteInasistenteLocal) {
		this.participanteInasistenteLocal = participanteInasistenteLocal;
	}

}
